V.FHIR Server
終於要開始來建置FHIR Server了,這裡我會使用Docker來建置HAPI FHIR,
先安裝Docker Desktop,當然也可以選擇單純安裝Docker CLI,
在這裡我們主要直接使用docker compose來執行建置,所以差異不大
docker-compose.yml:
version: '3.7'
services:
db:
container_name: db
image: postgres
restart: always
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: admin
POSTGRES_DB: hapi
ports:
- "5433:5432"
hapi-fhir:
container_name: fhir
image: hapiproject/hapi:latest
ports:
- "8080:8080"
environment:
HAPI_FHIR_USERNAME : admin
HAPI_FHIR_PASSWORD : admin
hapi.fhir.ig_runtime_upload_enabled: true
hapi.fhir.custom_content_path: /custom
profiles.active: r4
spring.datasource.url: 'jdbc:postgresql://fhirdb:5432/hapi'
spring.datasource.username: admin
spring.datasource.password: admin
spring.datasource.driverClassName: org.postgresql.Driver
spring.jpa.properties.hibernate.dialect: ca.uhn.fhir.jpa.model.dialect.HapiFhirPostgres94Dialect
spring.jpa.properties.hibernate.search.enabled: false
docker-compose.yml建立好後放到你想要建立的目錄地址
CMD -> cd 自訂目錄
CMD -> docker compose up
啟動
初次建立會需要一些時間,在實際應用的場合裡username與password不會這麼隨便,記得要修改跟變數化隱藏
若是不想使用compose的也可以自行pull image run
等到建置完成後可以嘗試在瀏覽器中輸入 http://localhost:8080
若HAPI FHIR正常運作可看到HAPI FHIR的首頁畫面
也可以從docker中的訊息中找尋:Finished bulk export job deletion with nothing to do
docker-compose.yml中有幾個內容要稍微注意一下,
hapi.fhir.ig_runtime_upload_enabled: true -> 在HAPI啟動時可動態匯入IG,若有使用REST匯入IG需求需設為true,
正式使用時建議不要開啟(false),以免有心人一次大量匯入IG Resource造成卡頓
hapi.fhir.custom_content_path: /custom -> 在HAPI目錄下的custom資料夾中可放入
welcome.html, logo.png與 about.html,作為自定義logo與說明的文件
到此最簡單的HAPI FHIR Server建置就完成了,讀者到這一步可以開始透過REST或GUI介面把玩FHIR Server了
HAPI FHIR的Document中有更多關於環境變數的設定與內容,這裡只是最粗淺的先試著讓HAPI FHIR跑起來。
本篇系列文不會深入談到HAPI FHIR Java SDK與結構實作,實際要讓HAPI FHIR上線提供外部使用,會需要經過很多部分的整理與添加支援
會在這裡花一個章節談及FHIR Server的主要原因是後面會提到的FUME轉換器可以利用FHIR Server持有的Resource來輔助或加速轉換的流程,
僅將FHIR Server作為載台使用。
明天開始來談HAPI FHIR的基本操作,一些可能不是那麼常用到但可以嘗試使用的方式,之所以會去研究這些API的使用方法是因為Docker建置有很多問題,
剛好提供一些教學沒談過的方法給大家。